In data unit communication, it is known for a communication device acting as a sender to divide a stream of data symbols (e.g. bits or bytes) into data units and send these over an appropriate transmission network to another device acting as a receiver. The receiver reconstructs the data symbol stream on the basis of the received data units.
Usually, this is performed in the context of a layering scheme (such as the OSI scheme), where a sending peer of a given protocol receives a data symbol stream from a higher layer, generates data units in accordance with the given protocol to which the sending peer adheres, and passes the generated data units to lower layers. On the receiving side, the receiving peer receives the data units from the lower layer, reconstructs the data symbol stream, and passes the reconstructed data symbol stream to the higher layer. The concept of dividing a data symbol stream into data units and the concept of layering are well known in the art, such that a further explanation is not necessary here.
It is noted that such sub-divisions of data are referred to by a variety of names, such as packets, segments, frames, protocol data units, service data units, etc. In the context of the present specification and claims, the term “data unit” is used generically to relate to any such sub-divisions of data for the purpose of communication.
A connection-oriented transport protocol such as TCP (Transmission Control Protocol) can be used together with a network layer protocol, for example the Internet Protocol (IP), to establish a transport connection between hosts across a network. Such connection may be identified by a transport connection identifier (also known as a ‘virtual circuit identifier’) comprising connection endpoint identifiers that are used to identify each endpoint of the connection. For example, in the context of TCP/IP, a connection endpoint identifier includes the IP address and port number associated with a particular host computer and an application running on that computer, respectively.
It is sometimes desirable to use a connection as described above to enable applications to participate in a multimedia session, in which one or more media streams are sent from one application to another. The shortcomings of known session management procedures become evident, however, when one of the connection endpoint identifiers changes. For example, a mobile host participating in a session with a base station may be assigned a new IP address when it moves from the coverage area of the base station to that of another base station.
The IP address change has a number of implications: Primarily, it will force the TCP-based communication to irrecoverably interrupt as the transport connection identifier, which is recorded within a special data block called the Internet Protocol Control Block (InPCB) at each of the session endpoints, will no longer correspond to the status of the session endpoints. Secondly, a failure of the TCP connection will force all data exchanged up to the point of mobility to be lost.